오늘 NGINX Open Source 1.15.2의 출시를 기쁜 마음으로 알려드립니다. 이번 릴리스의 주요 기능 중 하나는 새로운 $ssl_preread_protocol 변수입니다. 이 변수를 사용하면 TCP (stream) 프록시를 통해 트래픽을 전달할 때 SSL/TLS와 기타 프로토콜을 구분할 수 있습니다. 이는 예를 들어 SSL/TLS와 SSH 서비스를 동일한 포트에서 실행하여 방화벽 제한을 피하려는 경우에 유용합니다.
이 새로운 기능은 곧 출시될 NGINX Plus R16 릴리스에서 NGINX Plus 고객에게도 제공될 예정입니다.
$ssl_preread_protocol을 사용하는 시기와 방법$ssl_preread_protocol
When you terminate and decrypt SSL/TLS traffic, with either the http 또는 stream 모듈을 사용하여 SSL/TLS 트래픽을 종료하고 복호화하면 $ssl_protocol (http, stream) 변수에 클라이언트가 사용한 SSL 또는 TLS 버전이 저장됩니다. 하지만 경우에 따라서는 stream 모듈로 기본적인 TCP 프록시 또는 로드 밸런서를 구현하여 SSL/TLS 트래픽을 복호화하지 않고 그대로 전달하고 싶을 수 있습니다.
The stream_ssl_preread 모듈은 SSL 또는 TLS 연결의 초기 ClientHello 메시지를 검사하고 연결 관리에 사용할 수 있는 여러 값을 추출합니다. 릴리스 1.15.2에서 추가된 $ssl_preread_protocol 변수는 client_version 필드에서 ClientHello 메시지의 최신 SSL/TLS 버전 번호를 가져옵니다. supported_versions 확장이 ClientHello 메시지에 있으면 이 변수는 TLSv1.3으로 설정됩니다.
연결에서 SSL 또는 TLS 버전을 사용하지 않는 경우 $ssl_preread_protocol 변수는 빈 값이 되며, 이는 해당 연결이 SSH와 같이 SSL/TLS가 아닌 다른 프로토콜을 사용하고 있음을 나타냅니다.
다음 구성 코드 조각에서는 $ssl_preread_protocol 변수를 map 블록에서 사용하여 $upstream 변수를 연결에 사용되는 프로토콜에 적합한 업스트림 그룹의 이름으로 설정합니다. 그런 다음 proxy_pass 지시어가 요청을 선택된 업스트림 그룹으로 전달합니다. ssl_preread on 지시어가 server 블록에 포함되어 있어야 $ssl_preread_protocol 변수가 작동한다는 점에 유의하세요.
stream { upstream ssh {
server 192.0.2.1:22;
}
upstream web {
server 192.0.2.2:443;
}
map $ssl_preread_protocol $upstream {
default ssh;
"TLSv1.2" web;
}
# SSH and SSL on the same port
server {
listen 443;
proxy_pass $upstream;
ssl_preread on;
}
}구성이 적용되려면 클라이언트가 기본 포트인 22번 대신 443번 포트로 SSH 서버에 접속해야 합니다. 예를 들어 MacOS 및 Linux에 내장된 SSH 클라이언트에서는 -p 플래그를 사용하여 포트를 변경할 수 있습니다:
$ ssh ssh-server-ip-address -p 443최신 NGINX 버전을 설치하는 방법
최신 버전의 NGINX는 언제든지 공식 리포지토리의 메인라인 브랜치에서 다운로드할 수 있습니다.
자세히 알아보기
NGINX Open Source 1.15.2에는 추가 개선 사항과 버그 수정이 포함되어 있습니다. 새로운 기능의 전체 목록은 NGINX 변경 로그에서 확인하세요.
작성자 소개

관련 블로그 게시물
시청하기: KubeCon North America 2023에서의 NGINX Gateway Fabric
이 영상에서는 KubeCon의 NGINX 부스를 찾아가, 저희가 공개한 Kubernetes Gateway API 구현을 살펴봅니다.
F5 NGINX로 대규모 WAF 플릿을 확인하고 관리하는 2가지 방법
앱 보안을 강화하는 두 가지 방법을 소개합니다. NGINX Management Suite를 통해 WAF 운영에 대한 가시성을 높이고, NGINX App Protect WAF를 활용해 코드형 보안을 구현하는 것입니다.
Ingress 컨트롤러 선택 가이드, 4부: NGINX Ingress Controller 옵션
개발 주체, 개발 철학, 프로덕션 환경 준비도, 보안 및 지원을 기준으로 어떤 NGINX Ingress 컨트롤러가 가장 적합한지 알아보세요.
진화하는 공격 환경에 NGINX App Protect Denial of Service가 적응하는 방법
NGINX App Protect Denial of Service(DoS)가 계층 7 DoS 공격을 방어하기 위해 완화 방법을 실시간으로 조정하는 방식을 설명합니다. 정상적인 사용자 행동과 서버 상태에 대한 모델을 생성하여 공격을 나타내는 이상 징후를 감지하고 맞춤형 완화 시그니처를 적용할 수 있습니다.
NGINX Instance Manager를 활용한 대규모 구성 업데이트 및 인증서 관리
NGINX Instance Manager 버전 1.0에는 두 가지 새로운 기능이 도입되었습니다. NGINX 인스턴스에 태그와 사용자 역할을 지정하면 전체 그룹에 구성을 한 번에 적용할 수 있습니다. 인증서 검사는 만료 예정인 인증서를 감지하여 서비스 중단을 방지할 수 있도록 인증서를 교체할 수 있게 해줍니다.
Netflix가 자사 CDN의 핵심으로 NGINX를 선택한 이유
Netflix가 글로벌 콘텐츠 전송 네트워크인 Open Connect의 스트리밍 미디어 기술로 NGINX를 선택한 이유를 NGINX 개발자 Gleb Smirnoff에게서 알아보세요.